Skip Headers

Oracle® Database PL/SQL User's Guide and Reference 10g Release 2 (10.2) Part Number B14261-01 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# IF Statement

The `IF` statement executes or skips a sequence of statements, depending on the value of a Boolean expression. For more information, see "Testing Conditions: IF and CASE Statements".

Syntax

if statement ::=

Description of the illustration if_statement.gif

Keyword and Parameter Description

boolean_expression

An expression that returns the Boolean value `TRUE`, `FALSE`, or `NULL`. Examples are comparisons for equality, greater-than, or less-than. The sequence following the THEN keyword is executed only if the expression returns `TRUE`.

ELSE

If control reaches this keyword, the sequence of statements that follows it is executed. This occurs when none of the previous conditional tests returned `TRUE`.

ELSIF

Introduces a Boolean expression that is evaluated if none of the preceding conditions returned `TRUE`.

THEN

If the expression returns `TRUE`, the statements after the THEN keyword are executed.

Usage Notes

There are three forms of `IF` statements: `IF-THEN`, `IF-THEN-ELSE`, and `IF-THEN-ELSIF`. The simplest form of `IF` statement associates a Boolean expression with a sequence of statements enclosed by the keywords `THEN` and `END` `IF`. The sequence of statements is executed only if the expression returns `TRUE`. If the expression returns `FALSE` or `NULL`, the `IF` statement does nothing. In either case, control passes to the next statement.

The second form of `IF` statement adds the keyword `ELSE` followed by an alternative sequence of statements. The sequence of statements in the `ELSE` clause is executed only if the Boolean expression returns `FALSE` or `NULL`. Thus, the `ELSE` clause ensures that a sequence of statements is executed.

The third form of `IF` statement uses the keyword `ELSIF` to introduce additional Boolean expressions. If the first expression returns `FALSE` or `NULL`, the `ELSIF` clause evaluates another expression. An `IF` statement can have any number of `ELSIF` clauses; the final `ELSE` clause is optional. Boolean expressions are evaluated one by one from top to bottom. If any expression returns `TRUE`, its associated sequence of statements is executed and control passes to the next statement. If all expressions return `FALSE` or `NULL`, the sequence in the `ELSE` clause is executed.

An `IF` statement never executes more than one sequence of statements because processing is complete after any sequence of statements is executed. However, the `THEN` and `ELSE` clauses can include more `IF` statements. That is, `IF` statements can be nested.

Examples

Example 13-3 shows an example of the `IF-THEN-ELSIF-ELSE` statement.

Example 13-3 Using the IF Statement

    DECLARE
       jobid      employees.job_id%TYPE;
       empid      employees.employee_id%TYPE := 115;
       sal_raise  NUMBER(3,2);
    BEGIN
      SELECT job_id INTO jobid from employees WHERE employee_id = empid;
      IF jobid = 'PU_CLERK' THEN sal_raise := .09;
      ELSIF jobid = 'SH_CLERK' THEN sal_raise := .08;
      ELSIF jobid = 'ST_CLERK' THEN sal_raise := .07;
      ELSE sal_raise := 0;
      END IF;
    END;
    /

For examples, see the following:

Example 1-7, "Using the IF-THEN_ELSE and CASE Statement for Conditional Control"
Example 4-1, "Using a Simple IF-THEN Statement"
Example 4-2, "Using a Simple IF-THEN-ELSE Statement"
Example 4-3, "Nested IF Statements"
Example 4-4, "Using the IF-THEN-ELSEIF Statement"

Related Topics

"Testing Conditions: IF and CASE Statements"
"CASE Statement"
"Expression Definition"